1. Field of the Invention
The present invention relates generally to voltage or current mode output drivers and, more specifically, to techniques for controlling a driver in an on-chip memory interface or in an off-chip memory interface to compensate for data dependent noise.
2. Description of the Related Art
This section is intended to introduce the reader to various aspects of art that may be related to various aspects of the present invention, which are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
Processing speeds, system flexibility, and size constraints are typically considered by design engineers tasked with developing computer systems and system components. Computer systems typically include a plurality of memory devices which may be used to store programs and data and which may be accessible to other system components such as processors or peripheral devices. Typically, memory devices are grouped together to form memory modules such as dual-inline memory modules (DIMMs). Computer systems may incorporate numerous modules to increase the storage capacity of the system.
Typically, the memory devices communicate with other components within the computer system. For example, a processor may send an instruction to the memory device requesting data stored in a particular address. The memory device may then retrieve that data and send it to a memory controller, which forwards the data to the processor. In another example, the processor may instruct the memory device, through the memory controller, to store data in a particular address. Thus, the processor, memory controller, and memory all may communicate with one another to coordinate various system requests and functions.
Often, the various devices within the computer system communicate by actuating and sensing discrete changes in the voltage or current of one or more transmission lines. For example, to transmit a value from memory, a memory device may apply a voltage to one or more transmission lines coupled to a receiving device. Typically, to receive a value being transmitted, a receiving device senses the voltage of the transmission line. For instance, to transmit eight bits of data simultaneously, a memory device may alter the voltage of eight transmission lines that are coupled to a receiving device. Typically, once the voltage on all eight transmission lines correspond to the values being transmitted, a receiving device senses the voltages to receive the data. After a sufficient delay to ensure the receiving device properly senses the voltage on the transmission lines, the memory device may repeat the process and alter the voltage on the transmission lines to transmit another eight bits. Thus, by changing the voltage of one or more transmission lines, the memory device may transmit a sequence of values to other devices. This sequence of values is referred to as a “data stream.”
Memory devices often employ components configured to drive a transmission line to a desired voltage. Typically, a memory device connects to each transmission line through a contact referred to as a “DQ.” Inside a memory device, a driver array typically drives each transmission line to a desired voltage by passing current through the DQs. Typically, a driver array controls the voltage applied to each DQ in response to signals from other portions of the memory device. For example, the memory device may retrieve stored data and direct the driver array to transmit the data to another device.
Driver arrays often employ driver circuits to strengthen signals that are transmitted to other devices. Often, the signals within a memory device are relatively weak. To reduce the cost of memory devices, designers often employ small-densely packed transistors to perform most internal functions. However, these smaller transistors often lack the current carrying capacity to quickly drive a relatively long transmission line to a desired voltage. To compensate, signals from the smaller transistors are often passed through a driver circuit, which typically employs larger transistors. Often, the larger transistors are configured to carry larger currents, which may quickly alter the voltage of a transmission line to reflect the information carried by the weaker-internal signal.
In some devices, a driver circuit includes a sub-main driver, a sub-pre-driver, and a sub-pre-pre-driver to strengthen a signal in stages. The larger transistors employed by a driver circuit may take a long time for the smaller internal transistors to turn on. By stepping up the signal strength in stages, these delays may be avoided. For example, a weak signal carried by a small current may quickly activate an intermediate sized transistor in the sub-pre-pre-driver, generating a signal carried by a larger current. In turn, the signal from the sub-pre-pre-driver may quickly activate a larger transistor in the sub-pre-driver, generating a signal carried by even more current. Finally, the signal from the sub-pre-driver may activate an even larger transistor in the sub-main driver, permitting an even larger current to flow into or out of a transmission line and rapidly change the transmission line voltage.
Designers of computer systems often desire to decrease the time a memory device takes to transmit data to another device. Often, modern processors have the capacity to process data faster than a memory device can transmit the data. During certain computing tasks, the rate at which the memory device exchanges data with the processor may determine how long the computing task takes. Thus, by decreasing the time a memory device takes to transmit data, a designer may speed the operation of a computer system by performing more computing tasks in less time.
One technique to speed the transmission of data is to increase the number of signals sent simultaneously. For example, a designer may increase the number of transmission lines connecting two devices from 8 to 16. To match the number of transmission lines, the designer may also increase the number of DQs and driver circuits from 8 to 16. As a result, the memory device may send 16 bits at once, rather than just 8. Typically, more transmission lines permit a device to send more data simultaneously. Data that is sent simultaneously, on multiple transmission lines, is often referred to as a “data word.” Thus, by increasing the size of the data word, a designer may speed the transmission of data from a memory device.
Another technique to speed the transmission of data is to decrease the time between sequential signals. To this end, a designer may increase the rate at which a driver circuit changes the voltage of a transmission line. Between signals, the driver circuits may drive the voltage of a transmission line from a high voltage to a low voltage, from a low voltage to a high voltage, or leave the voltage unchanged, depending on the sequence of data. The rate at which a voltage changes as a signal is applied to a transmission line is often referred to as a “slew rate.” Thus, by increasing the slew rate of a signal, the memory device may transmit signals more quickly.
Data dependent noise often limits the success of these two techniques for speeding the transmission of data. Data dependent noise includes effects that interfere with the transmission of data to a degree that depends on the data being transmitted. Often, the interference varies the time it takes for signals to reach the receiving device. Variation in the time a signal takes to reach a receiving device may slow the transmission of data from a memory device. Often, a memory device sends several signals simultaneously in the form of a data word. Typically, in synchronous systems, a receiving device simultaneously senses the voltage of all the transmission lines to read the data word. Often, the receiving device delays before sensing the voltage on the transmission lines to ensure all the transmission lines have reached the desired voltage. Variation in the time a transmission line takes to transition between voltages may necessitate a larger delay, slowing the exchange of data. Thus, data dependent noise often imposes limits on the time between transmission of consecutive data words.
Various phenomena may contribute to data dependent noise. For instance, cross-talk between the signals may delay signals in a data dependent manner. The term “cross-talk” refers to the electromagnetic coupling of adjacent transmission lines. The transmission lines are often placed very close to one another to conserve space. As a result, adjacent transmission lines may form parasitic capacitors and inductors that slow abrupt transitions in voltage or current, such as those that occur between consecutive data words. The magnitude of the effect often depends on the voltage and current of adjacent transmission lines, i.e. the data carried by adjacent transmission lines. Consequently, cross-talk may introduce data dependent variation into the time a memory device takes to drive a signal.
Simultaneous switching noise may add further variation to the time a transmission line takes to transition between voltages. Typically, a driver circuit adjusts the voltage on each transmission line to reflect the value of the data being transmitted. Because a signal may travel over relatively long transmission lines, the driver circuit may draw a relatively large current to quickly change the voltage of the transmission line. Often, many driver circuits share a common power source. When a large number of transmission lines change voltage simultaneously, the current between the driver circuits and the power source may abruptly rise. As a result, the abrupt change in current may cause parasitic inductance or a voltage drop in an internal power bus, slowing the efforts of the driver circuits to change the voltage on certain transmission lines. Thus, when several transmission lines change voltage at the same time, the driver circuits may take longer to adjust the voltage. Consequently, the difference between each value in consecutive data words may affect how long the driver circuits take to transmit some of the values in the latter data word.
To increase the speed at which devices communicate, there is a need for a technique that reduces data dependent noise. Embodiments of the present invention may address one or more of these problems.